#ifndef ENTITY_H
#define ENTITY_H

#include <string>

#include "Point.h"
#include "Symbol.h"

class Level;

class Entity {
public:
	Entity() {}
	Entity(Symbol symbol, Point coord, const std::string& name = "");
	virtual ~Entity() {}
	
	inline const Symbol& symbol() const { return m_symbol; }
	inline const Point& coord() const { return m_coord; }
	inline const std::string name() const { return m_name; }
	
	void setCurrentLevel(Level* level);
	Level* getCurrentLevel() const;
protected:
	Symbol m_symbol;
	Point m_coord;
	std::string m_name;
	/**
	 * The level this entity currently is on.
	 */
	Level* m_gameLevel;
};

#endif